<template>
  <view class="content">
    <view class="header">
      <image src="../../static/shilu-login/logo.png"></image>
    </view>

    <view class="list">
      <view class="list-call">
        <image class="img" src="/static/shilu-login/1.png"></image>
        <input class="sl-input" v-model=" username" type="text" placeholder="输入账号" />
      </view>
      <view class="list-call">
        <image class="img" src="/static/shilu-login/2.png"></image>
        <input class="sl-input" v-model="password" type="text" placeholder="输入密码" password="true" />
      </view>

    </view>

    <view class="button-login" hover-class="button-hover" @tap="bindLogin()">
      <text>登录</text>
    </view>

    <view class="agreenment">
      <view @tap="forget">忘记密码</view>
      <text>|</text>
      <view @tap="register">注册账户</view>
    </view>
  </view>
</template>

<script>
  import {
    Login
  } from '@/api/login.js'

  export default {
    data() {
      return {
        username: 'user1',
        password: 'user1',
      };
    },
    onLoad() {
      this.bindLogin()
    },
    methods: {
      register() {
        uni.navigateTo({
          url: '/pages/login/reg'
        })
      },
      forget() {
        uni.navigateTo({
          url: '/pages/login/forget'
        })
      },
      bindLogin() {
        uni.request({
          url: `http://127.0.0.1:8080/api/users/login?username=${this.username}&password=${this.password}`,
          method: 'POST',
          success: (res) => {
            if (res.data.status === 200) {
              uni.setStorageSync('username', this.username);
              uni.setStorageSync('userId', res.data.userId);
              let token = res.data.token.split("Token: ")[1];
              uni.setStorageSync('token', token);
              uni.showToast({
                title: '登陆成功',
                icon: 'none',
                duration: 1000
              });
              setTimeout(() => {
                uni.reLaunch({
                	url: '/pages/index/index'
                })
              }, 1000); // 与弹窗持续时间一致
            } else {
              throw new Error('账号或密码错误！');
            }
          },
          fail: (err) => {
            throw new Error('未知错误！');
          }
        });
      }
    }
    
  }
</script>

<style>
  .content {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .header {
    width: 161rpx;
    height: 161rpx;
    background: rgba(63, 205, 235, 1);
    box-shadow: 0rpx 12rpx 13rpx 0rpx rgba(63, 205, 235, 0.47);
    border-radius: 50%;
    margin-top: 30rpx;
    margin-left: auto;
    margin-right: auto;
  }

  .header image {
    width: 161rpx;
    height: 161rpx;
    border-radius: 50%;
  }

  .list {
    display: flex;
    flex-direction: column;
    padding-top: 50rpx;
    padding-left: 70rpx;
    padding-right: 70rpx;
  }

  .list-call {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    height: 100rpx;
    color: #333333;
    border-bottom: 0.5px solid #e2e2e2;
  }

  .list-call .img {
    width: 40rpx;
    height: 40rpx;
  }

  .list-call .sl-input {
    flex: 1;
    text-align: left;
    font-size: 32rpx;
    margin-left: 16rpx;
  }

  .button-login {
    color: #FFFFFF;
    font-size: 34rpx;
    width: 470rpx;
    height: 100rpx;
    background: linear-gradient(-90deg, rgba(63, 205, 235, 1), rgba(188, 226, 158, 1));
    box-shadow: 0rpx 0rpx 13rpx 0rpx rgba(164, 217, 228, 0.2);
    border-radius: 50rpx;
    line-height: 100rpx;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
    margin-top: 100rpx;
  }

  .button-hover {
    background: linear-gradient(-90deg, rgba(63, 205, 235, 0.8), rgba(188, 226, 158, 0.8));
  }

  .agreenment {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    font-size: 30rpx;
    margin-top: 80rpx;
    color: #FFA800;
    text-align: center;
    height: 40rpx;
    line-height: 40rpx;
  }

  .agreenment text {
    font-size: 24rpx;
    margin-left: 15rpx;
    margin-right: 15rpx;
  }
</style>